Skip to main content

Form OnLoad

formOnLoad 事件会在加载表单数据时发生,特别是:

  • 在初始页面加载时。
  • 当在保存记录的页面上刷新数据时。

支持异步事件处理

formOnLoad 事件处理程序有能力支持以异步的方式处理程序逻辑。当事件处理程序返回一个 Promise 时,formOnLoad 事件变为异步。注意,formOnLoad脚本处理逻辑是有超时限制的,每一个 formOnLoad事件处理时间不能超过 10 秒。

formOnLoad 事件只会等待处理程序返回一个 Promise 。如果需要在处理程序中处理多个 Promise,建议将所有 Promise 包装在 Promise.all() 方法中并返回单个结果 Promise。这可以尽量减少超时导致的等待时间。

异步事件处理超时

使用异步处理程序时,表单加载将等待承诺被履行。为确保加载按时完成,处理程序会在 10 秒后引发超时异常,以便让您知道并且去调整异步 OnLoad 事件以获得更好的性能。

在某些情况下,您可能希望挂起 OnLoad 执行,这时候如果发生超时将产生超时错误。一个例子是在异步 OnLoad 中打开一个对话框并会等待用户进行确认。此时要确保 OnLoad 异步操作一直等待,您可以通过 调用 OnLoad 事件参数中ctx.getEventArgs().disableAsyncTimeout()。设置 disableAsyncTimeout 时,将不会应用该处理程序的超时。它将继续等待该处理程序执行完成。

caution

disableAsyncTimeout 要谨慎使用,因为它可能会影响表单加载的性能。